package com.seguriapp.dao;

import java.util.List;

import com.seguriapp.base.GenericDao;
import com.seguriapp.entities.Complaint;
import com.seguriapp.util.CriminalItem;
import com.seguriapp.util.SearchFilterEntity;

/**
 * Data access object for {@link Complaint} entities.
 * 
 * @author Tania Gonzales (taniadgv@gmail.com)
 */
public interface ComplaintDao extends GenericDao<Complaint> {

  List<CriminalItem> getCriminalActivityMap(double longitude, double latitude);

  List<Complaint> listComplaintsOrderByDate();

  void setComplaintVisibility(Long complaintId, boolean visible);

  List<CriminalItem> getCrminalActivityMap(List<Long> mapOptions, int zoomLevel, int deviceId, int allResults);

  List<Complaint> listComplaintsOrderByColumn(SearchFilterEntity searchFilter);

  long getComplaintsTotalPages(SearchFilterEntity searchFilter);

  List<Complaint> getCrminalActivityMap(List<Long> crimeCategories);

}
